package com.fudan.adse.service;

import com.fudan.adse.domain.dto.RowPieceDTO;
import com.fudan.adse.domain.po.FilmRowPiece;
import com.fudan.adse.domain.vo.RowPieceWithDetailVO;

import java.util.List;


public interface RowPieceService {
    /**
     * 添加排片信息
     *
     * @param rowPiece
     * @return
     */
    FilmRowPiece addRowPiece(RowPieceDTO rowPiece);

    /**
     * 更新维护排片信息
     *
     * @param rowPiece
     * @return
     */
    FilmRowPiece updateRowPiece(RowPieceDTO rowPiece);


    /**
     * 删除排片
     *
     * @param id
     */
    void deleteRowPiece(Integer id);


    /**
     * 筛选所有放映某电影的所有电影院
     *
     * @param filmId
     */
    List<RowPieceWithDetailVO> getRowPiecesByFilmId(Integer filmId,
                                                    Integer pageNum,
                                                    Integer pageSize);

    /**
     * 筛选某电影院的所有排片信息
     *
     * @param cinemaId
     * @return
     */
    List<RowPieceWithDetailVO> getRowPiecesByCinemaId(Integer cinemaId,
                                                      Integer pageNum,
                                                      Integer pageSize);

    /**
     * 多条件筛选
     * @param title 电影名
     * @param types 电影类型
     * @param statuses 上映状态
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<RowPieceWithDetailVO> filterByConditions(String title,
                                                  List<String> types,
                                                  List<String> statuses,
                                                  Integer pageNum,
                                                  Integer pageSize);

    /**
     * 获取某场次座位售出情况
     * @param rowPieceId
     * @return
     */
    RowPieceWithDetailVO getRowPieceWithSeats(Integer rowPieceId);
}
